home *** CD-ROM | disk | FTP | other *** search
/ Aminet 12 / Aminet 12 (1996)(GTI - Schatztruhe)[!][Jun 1996].iso / Aminet / misc / math / prime_2.lha / prime_2.liesmich < prev    next >
Text File  |  1996-03-09  |  3KB  |  72 lines

  1. Autor:   Gerd Wieczorek
  2. SMail:   Berliner Str.1
  3.          14959 Trebbin
  4.          BRD
  5.  
  6. EMail:   gwieifjc@sp.zrz.tu-berlin.de
  7.          (1x wöchentlich kontrolliert)
  8.  
  9. Programm: Prime (Version 2)
  10.  
  11. Dieses kurze Programm berechnet alle Primzahlen bis zu einer angegebenen Grenze
  12. und gibt sie in der Shell aus. Die Ausgabe kann ganz normal mit "> Datei" um-
  13. geleitet werden.
  14. Es wird das Verfahren nach Eratosthenes ( Sieb des ~ ) verwendet. Es wird ein
  15. Prozessor >= 68020 benötigt; wenn eine FPU vorhanden ist, kann die entsprechende
  16. Version verwendet werden.
  17. Daraus folgt: prime_020 für Amiga ohne FPU, prime_020_881 für Amiga mit FPU.
  18.  
  19. Prime kann nur in der Shell aufgerufen werden.
  20.  
  21. Benutzte Befehlsschablone:
  22.  Prime MAX/A/N,BigBuffer=BB/S,NOOUTPUT=NO/S
  23.  
  24. Bedeutung der Optionen:
  25.  MAX        -   Obergrenze für die Suche nach Primzahlen
  26.  BIGBUFFER  -   Es wird ein größerer interner Buffer für die Ausgabe verwendet
  27.                 normal: 8 KByte, bei BB: 256 KByte
  28.  NOOUTPUT   -   Es werden keine Zahlen ausgegeben. Damit läßt sich die
  29.                 Zeit bestimmen, die die eigentliche Berechnung benötigt.
  30.  
  31. Der Befehl kann während der Ausgabe mit CTRL-C unterbrochen  werden. Wenn
  32. allerdings ein großer Buffer verwendet und in die Shell ausgegeben wird,
  33. kann es ein Weilchen dauern, bis die Ausgabe wieder stoppt.
  34.  
  35. Benötigte Zeiten:
  36.  
  37. Auf meinem Rechner (A500, 68030/14MHz, 68882/20MHz, 4/1 MB) benötigt
  38. der Aufruf "Prime MAX BIGBUFFER >prime.txt" folgende Zeiten:
  39.  
  40. MAX       10000 50000 100000 500000 1000000 2000000 3000000 4000000
  41. Zeit (s)    0.2   0.7    1.2    5.5    10.7    21.5    31.9    43.0
  42.  
  43. Die Zeiten für die alte Version waren leider falsch - ca. um den
  44. Faktor 3 zu klein. Deshalb hier die korrigierten Werte:
  45.  
  46. MAX       10000 50000 100000 500000 1000000 2000000 3000000 4000000
  47. Zeit (s)    0.7   2.3    4.4   19.4    37.0    70.0   100.0   130.0
  48.  
  49. Wie man sieht, ist Prime ungefähr dreimal schneller geworden. Dies war
  50. möglich, indem ich den RawDoFmt-Aufruf durch eine selbst programmierte
  51. int->ascii Konvertierroutine ersetzte. Ansonsten blieb alles beim Alten.
  52.  
  53. Prime arbeitet mit VMM zusammen und nutzt eventuell vorhandenen virtuellen
  54. Speicher. Benötigt werden ca. MAX/8 in KB und Buffer von ca. 10 KB. Aufgrund
  55. der vielen Speicherzugriffe verlangsamt virtueller Speicher das Programm
  56. enorm. Ebenfalls anzuraten ist das Anschalten der Prozessor-Caches
  57. ( ca. 35% schneller bei meinem 68030 ). Die erzeugte Textdatei läßt sich
  58. in der Länge abschätzen mit ca. MAX Byte für MAX<100000, sonst ca. 0.6*MAX.
  59.  
  60. Ansonsten würde ich mich über Anmerkungen, Vorschläge, Bugmeldungen
  61. freuen. Wer keine Vorschläge hat, sollte mir eine kleine E-Mail mit
  62. Geschwindigkeitsangaben ähnlich meiner schicken.
  63.  
  64. Viel Vergnügen beim Ermitteln von Primzahlen !
  65.  
  66. Es gelten die üblichen Hinweise:
  67. Die Benutzung von Prime erfolgt auf eigene Gefahr. Für Schäden, die sich
  68. aus der Benutzung von Prime ergeben, bin ich nicht haftbar zu machen. Wenn
  69. jemand Prime in einem anderen Archiv einschließen will, muß er mich vorher
  70. per e-mail kontakten.
  71.  
  72.